#============== 打包镜像 ==============
# sudo docker build -t lovelemoncat/centos_ssh .
# 构建修改密码：docker build --build-arg PASSWORD=新密码
#============== 启动容器 ==============
# docker run -it -d --name node1 -p 2201:22 lovelemoncat/centos_ssh
# docker run -it -d --name node1 -p 2201:22 -e PASSWORD=111 lovelemoncat/centos_ssh
# ssh -p 2201 root@localhost


# 默认密码000

#============== 构建命令 ==============


# 设置基本的镜像，后续命令都以这个镜像为基础
FROM centos:centos7
# 作者信息
MAINTAINER lovelemocnat, zxmliuwei@qq.com
# RUN命令会在上面指定的镜像里执行任何命令
RUN yum install passwd openssl openssh-server -y

ARG PASSWORD
ENV PASSWORD=${PASSWORD}

# 自动输入密码(默认密码000)
RUN echo ${PASSWORD:-000} | passwd --stdin root
# -q 安静模式。用于在 /etc/rc 中创建新密钥的时候。 
# -t 指定密钥类型，默认是 rsa ，可以省略。
# -b bits 指定密钥长度。对于RSA密钥
# -f 指定密钥文件存储文件名。
# -N new_passphrase 提供一个新的密语。 

RUN ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''
RUN ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
RUN sed -i '/^session\s\+required\s\+pam_loginuid.so/s/^/#/' /etc/pam.d/sshd
# 创建/root/.ssh 目录，更改用户所属，权限
RUN mkdir -p /root/.ssh && chown root.root /root && chmod 700 /root/.ssh
# 暴露ssh端口22
EXPOSE 22
# 设定运行镜像时的默认命令：输出ip，并以daemon方式启动sshd
CMD ip addr ls eth0 | awk '{print $2}' | egrep -o '([0-9]+\.){3}[0-9]+';/usr/sbin/sshd -D